# load packages
library(tigris)
library(dplyr)
library(leaflet)
library(readr)
library(sf)
library(ggplot2)
The data come from Kaggle. The breweries are sometimes listed by name or town, or full state spelled out. The latter were cleaned up but not all the former.
State shape files were joined to the Kaggle data and a simple dot plot produced. Issues: where the first plot of percent is coming from, and how to change the width on the dot plot so state abbreviations are visible. How to get multiple chunks of code without errors–so I just ran it all at once.
pubs<- read_csv("breweries-brew-pubs-in-the-usa/8260_1.csv")
pubs$province <- pubs$province <- ifelse(pubs$province=="Arizona", "AZ", as.character(pubs$province))
pubs$province <- pubs$province <- ifelse(pubs$province=="California", "CA", as.character(pubs$province))
pubs$province <- pubs$province <- ifelse(pubs$province=="Colorado", "CO", as.character(pubs$province))
pubs$province <- pubs$province <- ifelse(pubs$province=="District of Columbia", "DC", as.character(pubs$province))
pubs$province <- pubs$province <- ifelse(pubs$province=="Illinois", "IL", as.character(pubs$province))
pubs$province <- pubs$province <- ifelse(pubs$province=="Massachusetts", "MA", as.character(pubs$province))
pubs$province <- pubs$province <- ifelse(pubs$province=="Nevada", "NV", as.character(pubs$province))
pubs$province <- pubs$province <- ifelse(pubs$province=="New York", "NY", as.character(pubs$province))
pubs$province <- pubs$province <- ifelse(pubs$province=="Nyc", "NY", as.character(pubs$province))
pubs$province <- pubs$province <- ifelse(pubs$province=="Pennsylvania", "PA", as.character(pubs$province))
pubs$province <- pubs$province <- ifelse(pubs$province=="Pitt", "PA", as.character(pubs$province))
pubs$province <- pubs$province <- ifelse(pubs$province=="Tennessee", "TN", as.character(pubs$province))
pubs$province <- pubs$province <- ifelse(pubs$province=="Texas", "TX", as.character(pubs$province))
pubs$province <- pubs$province <- ifelse(pubs$province=="Washington", "WA", as.character(pubs$province))
states <- states(cb=T)
##
|
| | 0%
|
|= | 1%
|
|= | 2%
|
|== | 3%
|
|=== | 4%
|
|=== | 5%
|
|==== | 6%
|
|==== | 7%
|
|===== | 7%
|
|===== | 8%
|
|====== | 9%
|
|====== | 10%
|
|======= | 10%
|
|======= | 11%
|
|======== | 12%
|
|======== | 13%
|
|========= | 13%
|
|========= | 14%
|
|========= | 15%
|
|========== | 15%
|
|========== | 16%
|
|=========== | 16%
|
|=========== | 17%
|
|============ | 18%
|
|============ | 19%
|
|============= | 19%
|
|============= | 20%
|
|============= | 21%
|
|============== | 21%
|
|============== | 22%
|
|=============== | 22%
|
|=============== | 23%
|
|=============== | 24%
|
|================ | 24%
|
|================ | 25%
|
|================= | 25%
|
|================= | 26%
|
|================= | 27%
|
|================== | 27%
|
|================== | 28%
|
|=================== | 29%
|
|=================== | 30%
|
|==================== | 30%
|
|==================== | 31%
|
|==================== | 32%
|
|===================== | 32%
|
|===================== | 33%
|
|====================== | 33%
|
|====================== | 34%
|
|======================= | 35%
|
|======================= | 36%
|
|======================== | 36%
|
|======================== | 37%
|
|======================== | 38%
|
|========================= | 38%
|
|========================= | 39%
|
|========================== | 39%
|
|========================== | 40%
|
|========================== | 41%
|
|=========================== | 41%
|
|=========================== | 42%
|
|============================ | 43%
|
|============================ | 44%
|
|============================= | 44%
|
|============================= | 45%
|
|============================== | 46%
|
|============================== | 47%
|
|=============================== | 47%
|
|=============================== | 48%
|
|================================ | 49%
|
|================================ | 50%
|
|================================= | 50%
|
|================================= | 51%
|
|================================== | 52%
|
|================================== | 53%
|
|=================================== | 53%
|
|=================================== | 54%
|
|==================================== | 55%
|
|==================================== | 56%
|
|===================================== | 57%
|
|====================================== | 58%
|
|====================================== | 59%
|
|======================================= | 59%
|
|======================================= | 60%
|
|======================================== | 61%
|
|======================================== | 62%
|
|========================================= | 63%
|
|========================================= | 64%
|
|========================================== | 64%
|
|========================================== | 65%
|
|=========================================== | 66%
|
|=========================================== | 67%
|
|============================================ | 67%
|
|============================================ | 68%
|
|============================================= | 69%
|
|============================================= | 70%
|
|============================================== | 70%
|
|============================================== | 71%
|
|=============================================== | 72%
|
|=============================================== | 73%
|
|================================================ | 73%
|
|================================================ | 74%
|
|================================================= | 75%
|
|================================================= | 76%
|
|================================================== | 76%
|
|================================================== | 77%
|
|================================================== | 78%
|
|=================================================== | 78%
|
|=================================================== | 79%
|
|==================================================== | 79%
|
|==================================================== | 80%
|
|==================================================== | 81%
|
|===================================================== | 81%
|
|===================================================== | 82%
|
|====================================================== | 82%
|
|====================================================== | 83%
|
|====================================================== | 84%
|
|======================================================= | 84%
|
|======================================================= | 85%
|
|======================================================== | 85%
|
|======================================================== | 86%
|
|======================================================== | 87%
|
|========================================================= | 87%
|
|========================================================= | 88%
|
|========================================================== | 88%
|
|========================================================== | 89%
|
|========================================================== | 90%
|
|=========================================================== | 90%
|
|=========================================================== | 91%
|
|============================================================ | 92%
|
|============================================================ | 93%
|
|============================================================= | 93%
|
|============================================================= | 94%
|
|============================================================= | 95%
|
|============================================================== | 95%
|
|============================================================== | 96%
|
|=============================================================== | 96%
|
|=============================================================== | 97%
|
|================================================================ | 98%
|
|================================================================ | 99%
|
|=================================================================| 100%
states<-st_as_sf(states)
beer_state <- pubs %>%
group_by(province) %>%
summarize(total=n()) %>%
rename(State=province)
beer_state_join <- inner_join(states,
beer_state,
by=c("STUSPS" = "State"))
ggplot(data=beer_state_join) +
geom_bar(aes(x=STUSPS, y=total), stat="identity", width=0.5) +
labs (x="State", y="Craft breweries")
pal_beer<- colorNumeric("Blues", domain=beer_state_join$total)
popup_beer <- paste0("<strong>", beer_state_join$STUSPS,
"</strong><br>Total: ",
as.character(beer_state_join$total))
leaflet() %>%
addProviderTiles("CartoDB.Positron") %>%
setView(-98.483330, 38.712046, zoom = 4) %>%
addPolygons(data = beer_state_join ,
fillColor = ~pal_beer(beer_state_join$total),
fillOpacity = 0.7,
weight = 0.2,
smoothFactor = 0.2,
popup = ~popup_beer) %>%
addLegend(pal = pal_beer,
values = beer_state_join$total,
position = "bottomright",
title = "Craft beers by state<br> Click state for data")